package com.bitoon.basketdudes.web.jpa;

import java.io.Serializable;
import java.util.*;
import javax.persistence.*;

@Entity
@Table(name = "m_jugador", schema="basket")
@NamedQueries({
    /*
    @NamedQuery(name = "MJugador.findAll", query = "SELECT m FROM MJugador m"),
    @NamedQuery(name = "MJugador.findById", query = "SELECT m FROM MJugador m WHERE m.id = :id"),
    @NamedQuery(name = "MJugador.findByNombre", query = "SELECT m FROM MJugador m WHERE m.nombre = :nombre"),
    @NamedQuery(name = "MJugador.findByPaisId", query = "SELECT m FROM MJugador m WHERE m.paisId = :paisId"),
    @NamedQuery(name = "MJugador.findByPeso", query = "SELECT m FROM MJugador m WHERE m.peso = :peso"),
    @NamedQuery(name = "MJugador.findByPrecio", query = "SELECT m FROM MJugador m WHERE m.precio = :precio"),
    @NamedQuery(name = "MJugador.findByPuntos", query = "SELECT m FROM MJugador m WHERE m.puntos = :puntos"),
    @NamedQuery(name = "MJugador.findByNivel", query = "SELECT m FROM MJugador m WHERE m.nivel = :nivel"),
    @NamedQuery(name = "MJugador.findByFAlta", query = "SELECT m FROM MJugador m WHERE m.fAlta = :fAlta"),
    @NamedQuery(name = "MJugador.findByPosicion1", query = "SELECT m FROM MJugador m WHERE m.posicion1 = :posicion1"),
    @NamedQuery(name = "MJugador.findByPosicion2", query = "SELECT m FROM MJugador m WHERE m.posicion2 = :posicion2"),
    @NamedQuery(name = "MJugador.findByPosicion3", query = "SELECT m FROM MJugador m WHERE m.posicion3 = :posicion3"),
    @NamedQuery(name = "MJugador.findByAltura", query = "SELECT m FROM MJugador m WHERE m.altura = :altura"),
    @NamedQuery(name = "MJugador.findByT1", query = "SELECT m FROM MJugador m WHERE m.t1 = :t1"),
    @NamedQuery(name = "MJugador.findByT2", query = "SELECT m FROM MJugador m WHERE m.t2 = :t2"),
    @NamedQuery(name = "MJugador.findByT3", query = "SELECT m FROM MJugador m WHERE m.t3 = :t3"),
    @NamedQuery(name = "MJugador.findByAgresividad", query = "SELECT m FROM MJugador m WHERE m.agresividad = :agresividad"),
    @NamedQuery(name = "MJugador.findByDriblin", query = "SELECT m FROM MJugador m WHERE m.driblin = :driblin"),
    @NamedQuery(name = "MJugador.findByPase", query = "SELECT m FROM MJugador m WHERE m.pase = :pase"),
    @NamedQuery(name = "MJugador.findByReboteAtaque", query = "SELECT m FROM MJugador m WHERE m.reboteAtaque = :reboteAtaque"),
    @NamedQuery(name = "MJugador.findByReboteDefensa", query = "SELECT m FROM MJugador m WHERE m.reboteDefensa = :reboteDefensa"),
    @NamedQuery(name = "MJugador.findByDefensa", query = "SELECT m FROM MJugador m WHERE m.defensa = :defensa"),
    @NamedQuery(name = "MJugador.findByRobo", query = "SELECT m FROM MJugador m WHERE m.robo = :robo"),
    @NamedQuery(name = "MJugador.findByTapon", query = "SELECT m FROM MJugador m WHERE m.tapon = :tapon"),
    @NamedQuery(name = "MJugador.findByResistencia", query = "SELECT m FROM MJugador m WHERE m.resistencia = :resistencia"),
    @NamedQuery(name = "MJugador.findByVelocidad", query = "SELECT m FROM MJugador m WHERE m.velocidad = :velocidad"),
    @NamedQuery(name = "MJugador.findBySprint", query = "SELECT m FROM MJugador m WHERE m.sprint = :sprint"),
    @NamedQuery(name = "MJugador.findByTeamwork", query = "SELECT m FROM MJugador m WHERE m.teamwork = :teamwork"),
    @NamedQuery(name = "MJugador.findByNombreReal", query = "SELECT m FROM MJugador m WHERE m.nombreReal = :nombreReal"),
    @NamedQuery(name = "MJugador.findByApellidoReal", query = "SELECT m FROM MJugador m WHERE m.apellidoReal = :apellidoReal"),
    @NamedQuery(name = "MJugador.findByStockTotal", query = "SELECT m FROM MJugador m WHERE m.stockTotal = :stockTotal"),
    @NamedQuery(name = "MJugador.findByFIni", query = "SELECT m FROM MJugador m WHERE m.fIni = :fIni"),
    @NamedQuery(name = "MJugador.findByFFin", query = "SELECT m FROM MJugador m WHERE m.fFin = :fFin"),
    @NamedQuery(name = "MJugador.findByUdsEquipo", query = "SELECT m FROM MJugador m WHERE m.udsEquipo = :udsEquipo"),
    @NamedQuery(name = "MJugador.findByEstado", query = "SELECT m FROM MJugador m WHERE m.estado = :estado")
     * 
     */
})
public class MJugador implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @Column(name = "pais_id")
    private String paisId;
    @Basic(optional = false)
    @Column(name = "peso")
    private short peso;
    @Basic(optional = false)
    @Column(name = "precio")
    private float precio;
    @Basic(optional = false)
    @Column(name = "puntos")
    private int puntos;
    @Basic(optional = false)
    @Column(name = "nivel")
    private short nivel;
    @Column(name = "f_alta")
    @Temporal(TemporalType.DATE)
    private Date fAlta;
    @Column(name = "posicion1")
    private Short posicion1;
    @Column(name = "posicion2")
    private Short posicion2;
    @Column(name = "posicion3")
    private Short posicion3;
    @Column(name = "altura")
    private Short altura;
    @Column(name = "t1")
    private Short t1;
    @Column(name = "t2")
    private Short t2;
    @Column(name = "t3")
    private Short t3;
    @Column(name = "agresividad")
    private Short agresividad;
    @Column(name = "driblin")
    private Short driblin;
    @Column(name = "pase")
    private Short pase;
    @Column(name = "rebote_ataque")
    private Short reboteAtaque;
    @Column(name = "rebote_defensa")
    private Short reboteDefensa;
    @Column(name = "defensa")
    private Short defensa;
    @Column(name = "robo")
    private Short robo;
    @Column(name = "tapon")
    private Short tapon;
    @Column(name = "resistencia")
    private Short resistencia;
    @Column(name = "velocidad")
    private Short velocidad;
    @Column(name = "sprint")
    private Short sprint;
    @Column(name = "teamwork")
    private Short teamwork;
    @Column(name = "nombre_real")
    private String nombreReal;
    @Column(name = "apellido_real")
    private String apellidoReal;
    @Column(name = "stock_total")
    private Integer stockTotal;

    @Column(name = "vendidas")
    private Integer vendidas;
    @Column(name = "devueltas")
    private Integer devueltas;
    
    @Column(name = "f_ini")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fIni;
    @Column(name = "f_fin")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fFin;
    @Column(name = "uds_equipo")
    private Short udsEquipo;
    @Column(name = "estado")
    private Short estado;
    @JoinColumn(name = "escuela_id", referencedColumnName = "id")
    @ManyToOne(optional = false, fetch = FetchType.EAGER)
    private Escuela escuela;

    @Transient
    private Map<String,String> mapaJugadores = new HashMap();

    public MJugador() {
        mapaJugadores.put("Apache", "apache");
        mapaJugadores.put("Atila", "atila");
        mapaJugadores.put("Bad Dog", "bad-dog");
        mapaJugadores.put("Beluga", "beluga");
        mapaJugadores.put("Big Bob", "big-bob");
        mapaJugadores.put("Big Onigiri", "big-onigiri");
        mapaJugadores.put("Black Shogun", "black-shogun");
        mapaJugadores.put("Bomba", "bomba");
        mapaJugadores.put("Buddha's Palm", "buddhas-palm");
        mapaJugadores.put("Bull", "bull");
        mapaJugadores.put("Casanova", "casanova");
        mapaJugadores.put("Champion", "champion");
        mapaJugadores.put("Diablo", "diablo");
        mapaJugadores.put("Diamond", "diamond");
        mapaJugadores.put("El Duque", "el-duque");
        mapaJugadores.put("El Muro", "el-muro");
        mapaJugadores.put("Fireball", "fireball");
        mapaJugadores.put("Fisherman", "fisherman");
        mapaJugadores.put("Frankestein", "frankestein");
        mapaJugadores.put("Gimmick", "gimmick");
        mapaJugadores.put("Golden Boy", "golden-boy");
        mapaJugadores.put("Golem", "golem");
        mapaJugadores.put("Graffiti", "graffiti");
        mapaJugadores.put("Iceberg", "iceberg");
        mapaJugadores.put("Irish Devil", "irish-devil");
        mapaJugadores.put("Jack Lee", "jack-lee");
        mapaJugadores.put("Kong", "kong");
        mapaJugadores.put("Machinegun", "machinegun");
        mapaJugadores.put("Magicroissant", "magicroissant");
        mapaJugadores.put("Matarife", "matarife");
        mapaJugadores.put("Namloc", "namloc");
        mapaJugadores.put("Octopus", "octopus");
        mapaJugadores.put("Ohm", "ohm");
        mapaJugadores.put("Profesor", "profesor");
        mapaJugadores.put("Quartermaster", "quartermaster");
        mapaJugadores.put("Racatún", "racatun");
        mapaJugadores.put("RainGod", "raingod");
        mapaJugadores.put("Reaper", "reaper");
        mapaJugadores.put("Redcap", "redcap");
        mapaJugadores.put("Rocket", "rocket");
        mapaJugadores.put("Scary", "scary");
        mapaJugadores.put("Scope", "scope");
        mapaJugadores.put("Shaolin", "shaolin");
        mapaJugadores.put("Snag", "snag");
        mapaJugadores.put("Sonic Blast", "sonic-blast");
        mapaJugadores.put("Spartan", "spartan");
        mapaJugadores.put("Speedy Parker", "speedy-parker");        
        mapaJugadores.put("Swamp", "swamp");        
        mapaJugadores.put("Tall Tom", "tall-tom");
        mapaJugadores.put("Tesla", "tesla");
        mapaJugadores.put("Tetsubo", "tetsubo");
        mapaJugadores.put("The Boss", "the-boss");
        mapaJugadores.put("The Engineer", "the-engineer");
        mapaJugadores.put("The Man", "the-man");
        mapaJugadores.put("Volcano", "volcano");
        mapaJugadores.put("White Tiger", "white-tiger");
        mapaJugadores.put("Yeti", "yeti");
    }

    public MJugador(Integer id) {
        this.id = id;
    }

    public MJugador(Integer id, String nombre, String paisId, short peso, float precio, int puntos, short nivel) {
        this.id = id;
        this.nombre = nombre;
        this.paisId = paisId;
        this.peso = peso;
        this.precio = precio;
        this.puntos = puntos;
        this.nivel = nivel;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPaisId() {
        return paisId;
    }

    public void setPaisId(String paisId) {
        this.paisId = paisId;
    }

    public short getPeso() {
        return peso;
    }

    public void setPeso(short peso) {
        this.peso = peso;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public int getPuntos() {
        return puntos;
    }

    public void setPuntos(int puntos) {
        this.puntos = puntos;
    }

    public short getNivel() {
        return nivel;
    }

    public void setNivel(short nivel) {
        this.nivel = nivel;
    }

    public Date getFAlta() {
        return fAlta;
    }

    public void setFAlta(Date fAlta) {
        this.fAlta = fAlta;
    }

    public Short getPosicion1() {
        return posicion1;
    }

    public void setPosicion1(Short posicion1) {
        this.posicion1 = posicion1;
    }

    public Short getPosicion2() {
        return posicion2;
    }

    public void setPosicion2(Short posicion2) {
        this.posicion2 = posicion2;
    }

    public Short getPosicion3() {
        return posicion3;
    }

    public void setPosicion3(Short posicion3) {
        this.posicion3 = posicion3;
    }

    public Short getAltura() {
        return altura;
    }

    public void setAltura(Short altura) {
        this.altura = altura;
    }

    public Short getT1() {
        return t1;
    }

    public void setT1(Short t1) {
        this.t1 = t1;
    }

    public Short getT2() {
        return t2;
    }

    public void setT2(Short t2) {
        this.t2 = t2;
    }

    public Short getT3() {
        return t3;
    }

    public void setT3(Short t3) {
        this.t3 = t3;
    }

    public Short getAgresividad() {
        return agresividad;
    }

    public void setAgresividad(Short agresividad) {
        this.agresividad = agresividad;
    }

    public Short getDriblin() {
        return driblin;
    }

    public void setDriblin(Short driblin) {
        this.driblin = driblin;
    }

    public Short getPase() {
        return pase;
    }

    public void setPase(Short pase) {
        this.pase = pase;
    }

    public Short getReboteAtaque() {
        return reboteAtaque;
    }

    public void setReboteAtaque(Short reboteAtaque) {
        this.reboteAtaque = reboteAtaque;
    }

    public Short getReboteDefensa() {
        return reboteDefensa;
    }

    public void setReboteDefensa(Short reboteDefensa) {
        this.reboteDefensa = reboteDefensa;
    }

    public Short getDefensa() {
        return defensa;
    }

    public void setDefensa(Short defensa) {
        this.defensa = defensa;
    }

    public Short getRobo() {
        return robo;
    }

    public void setRobo(Short robo) {
        this.robo = robo;
    }

    public Short getTapon() {
        return tapon;
    }

    public void setTapon(Short tapon) {
        this.tapon = tapon;
    }

    public Short getResistencia() {
        return resistencia;
    }

    public void setResistencia(Short resistencia) {
        this.resistencia = resistencia;
    }

    public Short getVelocidad() {
        return velocidad;
    }

    public void setVelocidad(Short velocidad) {
        this.velocidad = velocidad;
    }

    public Short getSprint() {
        return sprint;
    }

    public void setSprint(Short sprint) {
        this.sprint = sprint;
    }

    public Short getTeamwork() {
        return teamwork;
    }

    public void setTeamwork(Short teamwork) {
        this.teamwork = teamwork;
    }

    public String getNombreReal() {
        return nombreReal;
    }

    public void setNombreReal(String nombreReal) {
        this.nombreReal = nombreReal;
    }

    public String getApellidoReal() {
        return apellidoReal;
    }

    public void setApellidoReal(String apellidoReal) {
        this.apellidoReal = apellidoReal;
    }

    public Integer getStockTotal() {
        return stockTotal;
    }

    public void setStockTotal(Integer stockTotal) {
        this.stockTotal = stockTotal;
    }

    public Integer getVendidas() {
        return vendidas;
    }

    public void setVendidas(Integer vendidas) {
        this.vendidas = vendidas;
    }

    public Integer getDevueltas() {
        return devueltas;
    }

    public void setDevueltas(Integer valor) {
        this.devueltas = valor;
    }

    public Date getFIni() {
        return fIni;
    }

    public void setFIni(Date fIni) {
        this.fIni = fIni;
    }

    public Date getFFin() {
        return fFin;
    }

    public void setFFin(Date fFin) {
        this.fFin = fFin;
    }

    public Short getUdsEquipo() {
        return udsEquipo;
    }

    public void setUdsEquipo(Short udsEquipo) {
        this.udsEquipo = udsEquipo;
    }

    public Short getEstado() {
        return estado;
    }

    public void setEstado(Short estado) {
        this.estado = estado;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof MJugador)) {
            return false;
        }
        MJugador other = (MJugador) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.bitoon.basketdudes.jpa.web.MJugador[id=" + id + "]";
    }

    public String getNombreUrl() {
        return (String)mapaJugadores.get(this.nombre);
    }



    public String getNombreUrl(String nombre) {
        String retorno = "";

        try {
            retorno = nombre.toLowerCase();
            retorno = retorno.replace(" ", "-");
        } catch (Exception e) {
        }

        return retorno;
    }



}
